package com.andova.component.net

import com.andova.NETWORK

interface NetworkSusCallback<T : ResponseModel> {
    /**
     * 网络请求前回调的接口
     */
    suspend fun prepare()

    /**
     * 网络请求成功，但服务端响应错误信息
     */
    suspend fun error(obj: Any?)

    /**
     * 网络请求成功，并获取到服务端的响应数据
     */
    suspend fun success(respBody: T)

    /**
     * 网络请求成功，服务端进行响应，无论响应数据还是错误信息
     */
    suspend fun response(vararg objects: Any?)

    /**
     * 网络请求出错
     */
    suspend fun failure(throwable: Throwable?, vararg objects: Any?)

    /**
     * 网络请求结束回调的接口，无论响应成功还是失败
     */
    suspend fun complete(@NETWORK code: Int)
}